package ejemplo;

import java.io.FileNotFoundException;
import java.io.IOException;
import com.ia.neuralNetwork.*;

public class testNeuralNetwork {
	

	final static String FICHERO_PATRONES = "/Volumes/programacion/redneuronal/patrones/CARAS.TXT";
	final static String FICHERO_PESOS = "WCARAS.TXT";
	final static String PATH_PESOS = "/Volumes/programacion/redneuronal/pesos/";
	
	public static void aprende() throws FileNotFoundException, IOException {

		double porcentaje = 0.00;
		String patron = FICHERO_PATRONES;
		
		neuralNetwork nn = new neuralNetwork(400, 200, 4, patron,1);
		

		nn.setCoficienteAprendizaje((float) 0.1);
		utilidades.resetTime();
		
		
		//nn.weight.loadWeight(PATH_PESOS,FICHERO_PESOS);
	
		System.out.println(" NUMERO PATRONES "+nn.pattern.getNumeroPatrones());
		
		if (nn.pattern.getNumeroPatrones() > 0) {

			while (!nn.isfinishedLearning()) {

				nn.entrenaRed();

				utilidades.setTiempoTranscurrido();

				// porcentaje = (reconocidos * 100) /
				// nn.pattern.getNumeroPatrones();
				//
				// System.out.println(nn.getErrorGlobal());
				// System.out.println("reconocidos =" +
				// String.valueOf(porcentaje)
				// + "% /" + String.valueOf(reconocidos) + " de "
				// + String.valueOf(nn.pattern.getNumeroPatrones()));
				
				System.out.println("tiempo transcurrido ="
						+ String.valueOf(utilidades.getHoraTranscurrido())
						+ ":"
						+ String.valueOf(utilidades.getMinutoTranscurrido())
						+ ":"
						+ String.valueOf(utilidades.getSegundoTranscurrido()) + "  reconocidos --> "+nn.reconocidos);

			}

			System.out.println(" SE ACABO!!! iteraciones = "+ String.valueOf(nn.getIteraciones()));
			
			String s = nn.forwardPropagation("0;1;0;1");
			
			System.out.println(" resultado = "+s);
			
			//nn.weight.saveWeights(PATH_PESOS,FICHERO_PESOS);
			}

	}

	public static void main(String[] args) throws FileNotFoundException,
			IOException {

		aprende();

	}

}
